#ifndef KINEMATICS_H
#define KINEMATICS_H
#include "../motion9_dll.h"

/**/
#define KINE_FK_SINGULAR -1

#define SCARA_SIGULAR_ARM -1
#define SCARA_LEFT_ARM 1
#define SCARA_RIGHT_ARM 0

// int Kinematic_SetMachinePara(STRUCT_DH dh[6], STRUCT_TOOL_DESCRIPTION tool);
int Kinematic_SetTool(STRUCT_TOOL_DESCRIPTION tool);
int Kinematic_HandForward(double posit[MAX_JOINT], STRUCT_POSE *pose, int *fkine_flag);
int Kinematic_ClampForward(double posit[MAX_JOINT], STRUCT_POSE *pose, int *fkine_flag);
int Kinematic_HandInverse(double posit[MAX_JOINT], STRUCT_POSE *pose, int ikine_flag, double c_posit[MAX_JOINT]);
int Kinematic_ClampInverse(double posit[MAX_JOINT], STRUCT_POSE *pose, int ikine_flag, double c_posit[MAX_JOINT]);

//=============
int Kinematic_CheckIkFlagValid(int ik_flag);

#endif
